home *** CD-ROM | disk | FTP | other *** search
/ Amiga CD32 Gamer 22 / CD32 Gamer - 1996 - Issue 22.iso / fli / src / math64.s < prev    next >
Text File  |  1994-11-16  |  832b  |  40 lines

  1. ; void __asm add64 (register __a0 struct EClockVal *dst,
  2. ;                   register __a1 struct EClockVal *src);
  3.  
  4. ; void __asm sub64 (register __a0 struct EClockVal *dst,
  5. ;                   register __a1 struct EClockVal *src);
  6.  
  7. ; int __asm cmp64 (register __a0 struct EClockVal *dst,
  8. ;                  register __a1 struct EClockVal *src);
  9.  
  10.         xdef    _add64
  11.         xdef    _sub64
  12.         xdef    _cmp64
  13.  
  14. _add64:        addq.l    #4,a1
  15.         addq.l    #4,a0
  16.         move.l    (a1),d0
  17.         add.l    d0,(a0)
  18.         addx.l    -(a1),-(a0)
  19.         rts
  20.  
  21. _sub64:        addq.l    #4,a1
  22.         addq.l    #4,a0
  23.         move.l    (a1),d0
  24.         sub.l    d0,(a0)        ; dst->lo - src->lo
  25.         subx.l    -(a1),-(a0)    ; dst->hi - src->hi
  26.         rts
  27.  
  28. _cmp64:        cmpm.l    (a1)+,(a0)+    ; (a0)-(a1), dst->hi - src->hi
  29.         bne.b    1$
  30.         cmpm.l    (a1)+,(a0)+    ; dst->lo - src->lo
  31.         bne.b    1$
  32.         moveq    #0,d0
  33.         rts
  34. 1$:        bpl.b    2$
  35.         moveq    #1,d0
  36.         rts
  37. 2$:        moveq    #-1,d0
  38.         rts
  39.         end
  40.